// Copyright (c) 2024 Intel Corporation
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//    http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

import { env } from "$env/dynamic/public";
import { SSE } from "sse.js";

const CHAT_BASE_URL = env.CHAT_BASE_URL;

export async function fetchTextStream(query: string) {
	let payload = {};
	let url = "";

	payload = {
		model: "Intel/neural-chat-7b-v3-3",
		messages: query,
	};
	url = `${CHAT_BASE_URL}`;
	console.log(url);
	console.log("fetchTextStream", url);

	return new SSE(url, {
		headers: { "Content-Type": "application/json" },
		payload: JSON.stringify(payload),
	});
}
export async function sendMessageToBackend(validMessage: string) {
    const url = "http://8.130.14.199:8000/send"; // 你的后端接口地址

    try {
        const response = await fetch(url, {
            method: "POST",
            headers: {
                "Content-Type": "application/json", // 发送 JSON 格式的数据
            },
            body: JSON.stringify({ message: validMessage }), // 发送消息
        });

        console.log("response", response);
        
        if (!response.ok) {
            const errorText = await response.text();
            throw new Error(errorText || `HTTP error! status: ${response.status}`);
        }

        const result = await response.json();
        console.log("result", result);

        if (result.status === "success") {
            return {
                status: "success",
                stored_message: result.stored_message || "",
                message: result.message,
            };
        } else {
            return {
                status: "error",
                message: result.message || "未知错误",
            };
        }
    } catch (error) {
        console.error("消息发送错误: ", error);
        throw error;
    }
}
